# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer:
pkgname=netbox
pkgver=2.5.3
pkgrel=2
pkgdesc="IP address management and data center infrastructure management tool"
url="https://netbox.io"
arch="" # Requires py3-pygfm==0.14 which requires py3-markdown<3.0, our py-markdown is 3.1.1
license="Apache-2.0"
depends="
	py3-django
	py3-django-cors-headers
	py3-django-debug-toolbar
	py3-django-filter
	py3-django-mptt
	py3-django-rest-swagger
	py3-django-tables2
	py3-django-taggit
	py3-django-timezone-field
	py3-drf-yasg
	py3-future
	py3-graphviz
	py3-gunicorn
	py3-inflection
	py3-markdown
	py3-natsort
	py3-netaddr
	py3-paramiko
	py3-pillow
	py3-psycopg2
	py3-pygfm
	py3-ruamel
	py3-xmltodict
	py3-django-rest-framework
	py3-django-taggit-serializer
	py3-napalm
	py3-ncclient
	py3-pycryptodome
"
install="$pkgname.pre-install $pkgname.post-upgrade"
subpackages="$pkgname-doc $pkgname-openrc"
options="!check" # no testsuite
pkgusers="netbox"
pkggroups="netbox"
source="$pkgname-$pkgver.tar.gz::https://github.com/digitalocean/netbox/archive/v$pkgver.tar.gz
	gunicorn_config.py
	netbox.nginx-sample
	$pkgname.initd
	$pkgname.logrotated
	set-config-defaults.patch
	"
builddir="$srcdir"/$pkgname-$pkgver

build() {
	return 0
}

package() {
	cd "$builddir"
	local destdir=usr/share/webapps
	local conffile=etc/$pkgname/configuration.py
	mkdir -p "$pkgdir"/$destdir \
		"$pkgdir"/usr/share/doc \
		"$pkgdir"/etc/$pkgname
	mv $pkgname "$pkgdir"/$destdir
	mkdir -p "$pkgdir"/$destdir/$pkgname/static
	mv docs "$pkgdir"/usr/share/doc/$pkgname
	mv "$pkgdir"/$destdir/$pkgname/$pkgname/configuration.example.py \
		"$pkgdir"/$conffile

	# in order to install the static files we need a working config file
	# and temporarily set minimum settings in config file
	ln -s "$pkgdir"/$conffile \
		"$pkgdir"/$destdir/$pkgname/$pkgname/configuration.py
	sed -i "s/SECRET_KEY.*/SECRET_KEY = \'abcdefghk123456789\'/" \
		"$pkgdir"/$conffile

	# install static files
	python3 "$pkgdir"/$destdir/$pkgname/manage.py collectstatic --noinput --clear --link
	# let's move instead of linking static files originating from netbox
	local dir; for dir in "$pkgdir"/$destdir/$pkgname/project-static/*; do
		rm -rf "$pkgdir"/$destdir/$pkgname/static/$(basename $dir)
		mv $dir "$pkgdir"/$destdir/$pkgname/static
	done

	install -m644 "$srcdir"/gunicorn_config.py "$pkgdir"/$destdir/$pkgname
	install -D -m644 "$srcdir"/netbox.nginx-sample "$pkgdir"/etc/nginx/netbox.sample
	install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
	install -D -m644 "$srcdir"/$pkgname.logrotated "$pkgdir"/etc/logrotate.d/$pkgname
	install -d -m755 -o netbox -g netbox "$pkgdir"/var/lib/$pkgname/media

	# undo temp stuff
	ln -sf /$conffile "$pkgdir"/$destdir/$pkgname/$pkgname/configuration.py
	sed -i "s/SECRET_KEY.*/SECRET_KEY = \'\'/" "$pkgdir"/$conffile
}

sha512sums="f61adc8fd527481b837775e7023ecc83bc064d6c85d65e731d48c7969ae8ffbfe02be622d9fcda48daf0a237e71071d4f6725bca6d7def30ecb90c96407f1bd7  netbox-2.5.3.tar.gz
09d8e40d98d113458ee602de85306ac1a24fbb0015fbc4bb77812dae05096cb7b9c50770f650fd2ac78a388f35d7752ce8021790e952234a39c8b3e73a4ea3db  gunicorn_config.py
b5c3dc0ad2ebaacf43dfa41880dc7d677a763a3fadf1ccd0a6a9ec744d1648ca72f6a55893d09fd843b399559e2411a98b0ded597669f18a34f305f5ccb57c06  netbox.nginx-sample
d4467109d803f42f8d9b088951d6123b9088f0069a4db280c2ca5e5a57bf746d1faa70d0f542154149e60f21891876f7c15da360e07eec8c8a36f5aac65509d3  netbox.initd
a87dd52264f5ea00dbb774e54332480615850aa0056e60e13963481e8390bee73ceb519873fa11d357a29911c4e34a30c4623f4c206f765af6e64f379314e5a8  netbox.logrotated
6b9eb0dcf8d5a267c3c88b81468d1fd7a7971cc084370a44f1ea5b61b08a30e9339f838e97947a0c65f385ed69fc5122592eca0ee5ff6e00cf5ec0f2dbe4c59f  set-config-defaults.patch"
